package co.com.smart.persistence.entity.dto;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * The persistent class for the smart_ciudad database table.
 * 
 */
@Entity
@Table(name="smart_institucion")
@NamedQuery(name="SmartInstitucion.findAll", query="SELECT s FROM SmartInstitucion s")
public class SmartInstitucion implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="sm_scinstitucion")
	private Integer smscinstitucion;			

	@Column(name="sm_coinstitucion")
	private String smcoinstitucion;

	@Column(name="sm_dsinstitucion")
	private String smdsinstitucion;   

	@Column(name="sm_nmnit")
	private String smnmnit;	

	@Column(name="sm_nmcogdane")
	private String smnmcogdane;	

	//bi-directional many-to-one association to SmartDatosMaestro
	@ManyToOne(optional = false, fetch = FetchType.LAZY)
	@JoinColumn(name="sm_sccalendario", referencedColumnName="sm_scdatmaestro")
	private SmartDatosMaestro smdscalendario;

	@Column(name="sm_cousuario")
	private String smcousuario;

	//bi-directional many-to-one association to SmartDatosMaestro
	@ManyToOne(optional = false, fetch = FetchType.LAZY)
	@JoinColumn(name="sm_scsector", referencedColumnName="sm_scdatmaestro")
	private SmartDatosMaestro smscsector;

	@ManyToOne(optional = false, fetch = FetchType.LAZY)
	@JoinColumn(name="sm_sctipoubicacion", referencedColumnName="sm_scdatmaestro")
	private SmartDatosMaestro smsctipoubicacion;

	@Column(name="sm_dssitioweb")
	private String smdssitioweb;
	
	@Column(name="sm_dstelefono")
	private String smdstelefono;

	@Column(name="sm_dscelular")
	private String smdscelular;

	@Column(name="sm_dsemail")
	private String smdsemail;

	@Column(name="sm_dsdireccion")
	private String smdsdireccion;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhingreso")
	private Date smfhingreso;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhmodificacion")
	private Date smfhmodificacion;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhretiro")
	private Date smfhretiro;

	//bi-directional many-to-one association to SmartCiudad
	@ManyToOne(optional = false, fetch = FetchType.LAZY)
	@JoinColumn(name="sm_scciudad", referencedColumnName="sm_scciudad")
	private SmartCiudad smartCiudad;

	//bi-directional many-to-one association to SmartNucleoEducativo
	@ManyToOne(optional = false, fetch = FetchType.LAZY)
	@JoinColumn(name="sm_scnucleoeducativo", referencedColumnName="sm_scnucleoeducativo")
	private SmartNucleoEducativo smartNucleoEducativo;

	//bi-directional many-to-one association to SmartDatosMaestro
	@ManyToOne(optional = false, fetch = FetchType.LAZY)
	@JoinColumn(name="sm_sctipozona", referencedColumnName="sm_scdatmaestro")
	private SmartDatosMaestro smsctipozona;
	
	@OneToMany(cascade = CascadeType.ALL,mappedBy="smartInstitucion",fetch = FetchType.LAZY)
	private List<SmartSede> smartSedeInstitucion;

	public List<SmartSede> getSmartSedeInstitucion() {
		return smartSedeInstitucion;
	}

	public void setSmartSedeInstitucion(List<SmartSede> smartSedeInstitucion) {
		this.smartSedeInstitucion = smartSedeInstitucion;
	}

	public SmartDatosMaestro getSmscsector() {
		return smscsector;
	}

	public void setSmscsector(SmartDatosMaestro smscsector) {
		this.smscsector = smscsector;
	}

	public SmartDatosMaestro getSmsctipoubicacion() {
		return smsctipoubicacion;
	}

	public void setSmsctipoubicacion(SmartDatosMaestro smsctipoubicacion) {
		this.smsctipoubicacion = smsctipoubicacion;
	}

	public String getSmdssitioweb() {
		return smdssitioweb;
	}

	public void setSmdssitioweb(String smdssitioweb) {
		this.smdssitioweb = smdssitioweb;
	}

	public String getSmdstelefono() {
		return smdstelefono;
	}

	public void setSmdstelefono(String smdstelefono) {
		this.smdstelefono = smdstelefono;
	}

	public String getSmdscelular() {
		return smdscelular;
	}

	public void setSmdscelular(String smdscelular) {
		this.smdscelular = smdscelular;
	}

	public String getSmdsemail() {
		return smdsemail;
	}

	public void setSmdsemail(String smdsemail) {
		this.smdsemail = smdsemail;
	}

	public String getSmdsdireccion() {
		return smdsdireccion;
	}

	public void setSmdsdireccion(String smdsdireccion) {
		this.smdsdireccion = smdsdireccion;
	}

	public SmartDatosMaestro getSmsctipozona() {
		return smsctipozona;
	}

	public void setSmsctipozona(SmartDatosMaestro smsctipozona) {
		this.smsctipozona = smsctipozona;
	}

	public Integer getSmscinstitucion() {
		return smscinstitucion;
	}

	public void setSmscinstitucion(Integer smscinstitucion) {
		this.smscinstitucion = smscinstitucion;
	}

	public String getSmcoinstitucion() {
		return smcoinstitucion;
	}

	public void setSmcoinstitucion(String smcoinstitucion) {
		this.smcoinstitucion = smcoinstitucion;
	}

	public String getSmdsinstitucion() {
		return smdsinstitucion;
	}

	public void setSmdsinstitucion(String smdsinstitucion) {
		this.smdsinstitucion = smdsinstitucion;
	}

	public String getSmnmnit() {
		return smnmnit;
	}

	public void setSmnmnit(String smnmnit) {
		this.smnmnit = smnmnit;
	}

	public String getSmnmcogdane() {
		return smnmcogdane;
	}

	public void setSmnmcogdane(String smnmcogdane) {
		this.smnmcogdane = smnmcogdane;
	}

	public SmartDatosMaestro getSmdscalendario() {
		return smdscalendario;
	}

	public void setSmdscalendario(SmartDatosMaestro smdscalendario) {
		this.smdscalendario = smdscalendario;
	}

	public String getSmcousuario() {
		return smcousuario;
	}

	public void setSmcousuario(String smcousuario) {
		this.smcousuario = smcousuario;
	}

	public Date getSmfhingreso() {
		return smfhingreso;
	}

	public void setSmfhingreso(Date smfhingreso) {
		this.smfhingreso = smfhingreso;
	}

	public Date getSmfhmodificacion() {
		return smfhmodificacion;
	}

	public void setSmfhmodificacion(Date smfhmodificacion) {
		this.smfhmodificacion = smfhmodificacion;
	}

	public Date getSmfhretiro() {
		return smfhretiro;
	}

	public void setSmfhretiro(Date smfhretiro) {
		this.smfhretiro = smfhretiro;
	}

	public SmartCiudad getSmartCiudad() {
		return smartCiudad;
	}

	public void setSmartCiudad(SmartCiudad smartCiudad) {
		this.smartCiudad = smartCiudad;
	}

	public SmartNucleoEducativo getSmartNucleoEducativo() {
		return smartNucleoEducativo;
	}

	public void setSmartNucleoEducativo(SmartNucleoEducativo smartNucleoEducativo) {
		this.smartNucleoEducativo = smartNucleoEducativo;
	}

	public SmartDatosMaestro getSmartTipoZona() {
		return this.smsctipozona;
	}

	public void setSmartTipoZona(SmartDatosMaestro smsctipozona) {
		this.smsctipozona = smsctipozona;
	}
}
